The present invention relates to a disk cache control unit, and more particularly to a disk cache control unit which is adapted to reduce the time required for data transfer between an upper-rank processor and a disk unit, in an information processing system.
It has been well known that in a general-purpose electronic computer system employing-a disk unit which uses a rotary disk as a storage medium, a disk cache control unit having a cache memory comprising a semiconductor memory, for example, accessible faster than the disk unit, is provided between a high-speed operating CPU and a disk unit which provides a slow data access operation due to a rotational delay or a seek action of the storage medium. The disk cache control unit can copy a part of the data stored in the disk unit into the cache memory as occasion demands and is able to respond to input/output requests from the CPU with data stored in the cache memory insofar as feasible, thereby making high-speed access to data possible.
More specifically, when an input/output command is given by the CPU, the disk cache control unit accesses the cache memory if the target data is present in the cache memory or it accesses the disk unit if the target data is not present in the cache memory, stores a copy of the accessed data in the cache memory and also stores data of a certain size located in the neighborhood of that accessed data in the cache memory, the latter storage operation being done to provide for a request for data by an input/output command to be executed later.
If the data requested by the input/output command is not stored in the cache memory, the disk cache control unit instructs the disk unit to position the head so as to accessthe desired data on the disk. While the head positioning is under way, the disk cache control unit normally disconnects from the disk unit and waits for an input/output command from the CPU and also waits for the disk unit to complete the head positioning. On sensing that the head has been positioned at the disk unit, the disk cache control unit resumes connection with the disk unit and transfers the data.
However, if the disk cache control unit receives and executes another input/output command, it cannot detect the completion of the head positioning at the disk unit. Therefore, it was conventionally impossible to access data on the disk unit in which the head has been positioned for this time until the head is positioned again to the desired data after the input/output command has been executed.
There is a known technology, disclosed in JP-A-60-101654 for example, which is effective in reducing such a wasteful rotational delay of the disk unit.
Specifically, this technology is to install in a magnetic disk control unit disposed between the CPU and the magnetic disk unit an interruption detection mechanism, independent of the magnetic disk controller, for detecting a positioning completion interruption and a rotational delay completion interruption of the magnetic disk unit. With such a mechanism, while data is being transferred from the magnetic disk unit to the main storage (on the CPU side), the CPU does not accept the above-mentioned interruptions from other magnetic disk units so as to allow the data transfer to the main storage to be completed and the CPU accepts interruptions only in the period in which there remains only staging to be carried out (the staging being an operation to store data) after the completion of the data transfer in the cache memory, in units of tracks for example, to provide for requests for data by input/output commands to be issued next, and when an interruption request is detected, the staging is suspended, so that wasteful rotational delays are reduced.
In the prior art described above, however, no consideration was given to the realization of a capability of the disk cache control unit to control data transfer with the main storage and data transfer with the disk unit independently and asynchronously. Therefore, even if the head positioning has been completed in the disk unit in the time period in which the data requested by an input/output command is being transferred from the cache memory to the main storage, data transfer from the disk unit to the main storage cannot be started before data transfer from the cache memory to the main storage is completed. After the data transfer has been completed, to get data from the disk unit, it is necessary to re-position the head in the disk unit, for which a wasteful rotational delay arises.